package com.example.model;

import com.example.enums.ResultStatus;
import lombok.Data;

/**
 * Description:
 * User: 阿宾
 * Date: 2025-04-25
 * Time: 14:35
 */
@Data
public class Result<T> {
    private ResultStatus code;//可以使用枚举来列举业务码
    private String errMsg;//错误信息，如果业务成功，则为空。
//    private int code;//业务码，如200表示登录成功，-1表示失败，-2表示未登录;不是Http状态码
    private T data;//使用泛型，可以方便接收controller中的各种方法


    //业务成功时返回的方法
    public static <T> Result success(T data){
        Result result = new Result<>();
        result.setCode(ResultStatus.SUCCESS);
        result.setData(data);
        return result;
    }

    //业务未登录时返回的方法
    public static Result nologin(){
        Result result = new Result<>();
        result.setCode(ResultStatus.NOLOGIN);
        result.setErrMsg("用户未登录");
        return result;
    }
    /**
     * 业务失败时返回的方法
     * @param msg 业务失败时返回的信息
     * @return
     */
    public static Result fail(String msg){
        Result result = new Result<>();
        result.setCode(ResultStatus.FAIL);
        result.setErrMsg(msg);
        return result;
    }
}
